<?php
	//header("Content-Type:text/html;charset=utf-8");

	//checktime();//调用检测函数

	//获取客户端的真实ip
	function GetIPC(){
		return $_SERVER['REMOTE_ADDR'];
	}
	//正则txt取值 例：（ TriesNum='0'|TriesTime='2013-06-19 12:10:56' ）这样的值
	function get_var($varname,$strvar){
		preg_match("/".$varname."=\'(.+?)\'/",$strvar,$var);
		return $var[1];
	}

	/* if($_GET["state"]=="true")checktime(true); //echo "真";
	if($_GET["state"]=="false")checktime(false); //echo "假"; */

	//$state状态参数规则true、false
	function checktime($action='default'){
		$session_dir_name=DEDEROOT."\data\checktime";//定义session存放目录  在当前页面下
		if(!file_exists($session_dir_name)) mkdir($session_dir_name);//新建目录
		$clientip=GetIPC();//定义客户端IP
		$session_file_name=$session_dir_name."\\".$clientip.'_'.$action."_.txt";//客户端session文件名称
		$TriesNum = $TriesTime = 0;
		if(!file_exists($session_file_name)){
			/* $content="TriesNum='3'|"."TriesTime='".date ( "Y-m-d H:i:s" )."'";
			file_put_contents($session_file_name,$content);  */
			$fp=fopen($session_file_name, "w");
			$content="TriesNum='3'|"."TriesTime='".date ( "Y-m-d H:i:s" )."'";
			fwrite($fp, $content);
		}else{
			$fp=fopen($session_file_name, "r+");
			$content = fread($fp,1024);
			//$content = file_get_contents($session_file_name,filesize($session_file_name));
			$TriesNum=get_var("TriesNum",$content);
			$TriesTime=get_var("TriesTime",$content);
			//fclose($fp);
		}

		if (is_null ( $TriesNum )) {	//限制次数不为空的时候 处理逻辑
			$TriesNum = 3; // 初验证次数为3次
		}else{
			if ($TriesNum <= 0) { // 如果达到限制次数后，就设置间隔时间
				if (is_null ( $TriesTime)) // 如果没有设置限制登陆时间的时候才保存session时间
					$content="TriesNum='".$TriesNum."'|"."TriesTime='".date ( "Y-m-d H:i:s" )."'";// 存入限制登陆的时间
					fseek($fp,0);
					fwrite($fp, $content);
			}

		}

		if (is_null ( $TriesTime )) {
			$ResidueTime = 0; // 取限制登陆时间，如果没有初始化限制的剩余时间为0
		} else {
			$NowTime = strtotime ( date ( "Y-m-d H:i:s" ) ); // 取当前时间
			$ResidueTime = 10 - ceil ( ($NowTime - strtotime ( $TriesTime )) / 60 ); // 60s*60min*24h，计算时间差
			if ($ResidueTime <= 0) { // 如果时间差超过了10分钟，则初始化为0
				$ResidueTime = 0;
				$TriesNum = 3; // 初始登陆次数为3次
			}
		}
		//限制次数大于0 或 剩余时间等于0 的时候  次数减 1 并存入txt文件中。或都提示系统锁定中！！
		if ($ResidueTime == 0 or $TriesNum > 0) {
			$TriesNum = $TriesNum - 1; // 加到session中
			//把$TriesNum存入到$session_file_name文件里
			$content="TriesNum='".$TriesNum."'|"."TriesTime='".date ( "Y-m-d H:i:s" )."'";
			fseek($fp,0);
			fwrite($fp, $content);
			fclose($fp);
			//echo "验证错误," . $TriesNum . "次后锁定10分钟。";

			/**************************************我是分割线*************************************************/
			/* //插入数据库测试
			$conn= mysql_connect("localhost","root","") or die("连接失败");
			mysql_select_db("test",$conn);
			$sql="insert into news(title) values('ddddddd')";
			$result=mysql_query($sql,$conn)or die(mysql_error());
			mysql_close($conn);  */
			/**************************************我是分割线*************************************************/
			/* if ($state) {
				@unlink ($session_file_name);
				echo "验证成功";
			} else {

			}*/
			/**************************************我是分割线*************************************************/
		} else {
			echo "系统锁定中,还有" . $ResidueTime . "分钟。";
			exit;
		}
	}
